{
LANG : PASCAL
PROB : barn1
}

program BARN1;
const
  fi = 'barn1.in';
  fo = 'barn1.out';
  max = 200;
var
  b : array[1..max] of integer;
  d : array[0..max, 0..50] of integer;
  m, s, c, min : integer;

procedure inp;
var
  i : integer;
begin
  read(m, s, c);
  for i := 1 to c do read(b[i]);
end;

procedure sort;
var
  i, j, temp : integer;
begin
  for i := 1 to c do
    for j := i+1 to c do
      if b[i] > b[j] then
      begin
        temp := b[i];
        b[i] := b[j];
        b[j] := temp;
      end;
end;

function min2(a, b : integer) : integer;
begin
  if a > b then min2 := b
  else min2 := a;
end;

function max2(a, b : integer) : integer;
begin
  if a > b then max2 := a
  else max2 := b;
end;

procedure process;
var
  i, k, j : integer;
begin
  fillchar(d, sizeof(d), $30);
  d[0, 0] := 0;
  for i := 1 to c do
    for k := 1 to min2(i, m) do
      for j := i-1 downto 0 do
        if d[i, k] >  d[j, k-1] + b[i] - b[j+1] + 1 then
           d[i, k] := d[j, k-1] + b[i] - b[j+1] + 1;
  min := maxint;
  for i := 1 to m do
    if min > d[c, i] then min := d[c, i];
end;

begin
  assign(input, fi); reset(input);
  assign(output, fo); rewrite(output);
  inp;
  sort;
  process;
  writeln(min);
  close(output);
  close(input);
end.